#ifndef G3_FRAME_H
#define G3_FRAME_H

#include "render/renderer.h"

#include "log.h"
#include <SDL/SDL.h>
#include <GL/gl.h>
#include <string>
#include "input.h"

namespace G3 {

using std::string;

class FRAME {
    public:
        FRAME ();
        FRAME (int WindowWidth, int WindowHeight, int BitsPerPixel, int Flags);
        ~FRAME ();

//==============================================================================
// Creates a SDL OpenGL frame
//==============================================================================
        bool Create (string Title="");
        bool Create (string Title, int WindowWidth, int WindowHeight, int BitsPerPixel, int Flags);

        // Just for holding video info - just in case
        const SDL_VideoInfo *VideoInfo;
        SDL_Surface *VideoSurface;
        // Frame width, height and color depth
        int Width, Height;
        int Depth;

        string Caption;
        // Frame flags
        int flags;
        // pLOG pointer for manual log direction
        LOG *Log;
        // InputHandler
        INPUT Input;
        // Renderer
        RENDERER Renderer;
};

}

#endif //G3_FRAME_H
